<%@page import="util.MyUtils"%>
<%@page import="bean.juego.Juego"%>
<%@page import="bean.jugador.Jugador"%>
<%@page import="bean.Logro"%>
<%@page import="logic.Filtro"%>
<%@page import="bean.Arma"%>
<%@page import="web.graficos.Graficos"%>
<%@page import="web.graficos.GraficosFactory"%>
<%@page import="java.util.List"%>
<%@page import="web.URLHelper"%>
<%@page import="logic.Buscador"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%
    Jugador jugador = Buscador.jugadorPorApodo(request.getParameter("nombre"));
    String titulo = jugador.getDatosF().getTitulo();
    Graficos graficos = GraficosFactory.getGraficos(true);
    if (MyUtils.isNull(titulo)) {
        titulo = "";
    } else {
        titulo = ", the " + titulo;
    }
%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link href="<%=URLHelper.getCSSURL()%>" rel="stylesheet">
        <title>InfArena <%=jugador.getDatos().getNombre()%> Statistics</title>

        <script type="text/javascript" src="<%=URLHelper.jsFolder + "/google_jsapi.js"%>"></script>

    </head>
    <body class="body_class">
        <a href="<%=URLHelper.rootFolder%>">
            Inicio
        </a>
        <br/>
        <br/>
        <table cellspacing="4px" style="background: none; width: 99%;">
            <tr>
                <td align="center">
                    <b><%=jugador.getDatos().getNombre() + titulo%></b>
                    <br/>
                    <i>"<%=jugador.getDatosF().getFrase()%>"</i>
                </td>
                <td>
                    <img style="width: 128px; height: 128px;" alt="<%=jugador.getDatos().getNombre()%>" src="<%=URLHelper.getImageURL(jugador)%>" />
                </td>
            </tr>
        </table>
        <table cellspacing="4px" style="background: none; color: #2D2723; width: 99%;">
            <tr>
                <td valign="top">
                    Nicks:
                </td>
                <td>
                    <%
                        StringBuilder sb = new StringBuilder();
                        boolean first = true;
                        for (String apodo : jugador.getDatos().getApodos()) {
                            if (apodo.equals(jugador.getDatos().getNombre())) {
                                continue;
                            }
                            if (first) {
                                first = false;
                            } else {
                                sb.append(", ");
                            }
                            sb.append(apodo);
                        }
                    %>
                    <i><%=sb.toString()%></i>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Rol:
                </td>
                <td>
                    <i><%=jugador.getDatosF().getRol()%></i>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Bio:
                </td>
                <td class="biografia_class">
                    <i><%=jugador.getDatosF().getBiografia()%></i>
                </td>
            </tr>
        </table>
        <br/>
        <br/>
        <h3>Puntos totales: <%=jugador.getPuntosTotal()%></h3>
        <h3>Partidos totales: <%=jugador.getPartidos()%></h3>
        <h3>Punto por partido: <%=jugador.getPromedioPuntos()%></h3>
        <h3>Muertes hechas por partido: <%=jugador.getPromedioMuertesHechas()%></h3>
        <h3>Muertes recibidas por partido: <%=jugador.getPromedioMuertesRecibidas()%></h3>
        <h3>Capturas por partido: <%=jugador.getCapturasPorPartido()%></h3>
        <br/>
        <br/>
        <span class="mw-headline">Logros</span>
        <br/>
        <table>
            <tr>

                <%
                    int count = 0;
                    for (Logro logro : jugador.getLogros().keySet()) {
                        count++;
                %>
                <td>
                    <table style="background: none; color: #2D2723;">
                        <tr>
                            <td align="center" style="border: 1px solid; min-width: 100px;">
                                <img style="width: 64px; height: 64px;" alt="<%=logro.toString()%>" src="<%=URLHelper.getImageURLLogro(logro)%>" />
                                <br/>
                                <%=logro.toString()%>
                            </td>
                            <td align="center" valign="middle" style="border: 1px solid; min-width: 40px;">
                                <%=jugador.getLogros().get(logro)%>
                            </td>
                        </tr>
                    </table>
                </td>
                <% if (count % 3 == 0) {%>
            </tr>
            <tr>
                <% }%>
                <% }%>
            </tr>
        </table>
        <br/>
        <br/>
        <span class="mw-headline">Estadisticas de armas</span>
        <br/>
        <%
            List<Arma> armas = Buscador.getArmas();
        %>
        <table cellspacing="1">
            <tr>
                <th class="table_cell">Arma</th>
                <th class="table_cell_positive">Muertes Hechas</th>
                <th class="table_cell_negative">Muertes Recibidas</th>
            </tr>
            <%
                for (Arma arma : armas) {
            %>
            <tr>
                <td style="text-align:center; border: 1px solid;">
                    <a href="<%=URLHelper.getURL(arma)%>">
                        <img style="width: 64px; height: 40px;" alt="<%=arma.getNombre()%>" src="<%=URLHelper.getImageURL(arma)%>" />
                    </a>
                    <br/>
                    <%=arma.getNombre()%>
                </td>
                <td class="table_cell_positive">
                    <%=Filtro.cantidadMuertesJugadorConArma(jugador, arma)%>
                </td>
                <td class="table_cell_negative">
                    <%=Filtro.cantidadMuertesJugadorPorArma(jugador, arma)%>
                </td>
            </tr>
            <% }%>
        </table>

        <br/>
        <br/>
        <span class="mw-headline">PvP</span>
        <br/>
        <%
            List<Jugador> jugadores = Buscador.getJugadores();
        %>
        <table cellspacing="1">
            <tr>
                <th class="table_cell">Jugador</th>
                <th class="table_cell_positive">Muertes Hechas</th>
                <th class="table_cell_negative">Muertes Recibidas</th>
                <th class="table_cell">Ventaja</th>
                <th class="table_cell">Historia</th>
                <th class="table_cell">Versus</th>
            </tr>
            <%
                for (Jugador otroJugador : jugadores) {
                    if (otroJugador == jugador) {
                        continue;
                    }
                    int muertesHechas = Filtro.cantidadMuertesJugadorAJugador(jugador, otroJugador);
                    int muertesRecibidas = Filtro.cantidadMuertesJugadorAJugador(otroJugador, jugador);
                    float ventaja = 0;
                    String ventajasStyleClass = "table_cell";
                    int muertesTotales = muertesHechas + muertesRecibidas;
                    if (muertesTotales > 0) {
                        ventaja = (float) 100 * (muertesHechas - muertesRecibidas) / muertesRecibidas;
                        if (muertesHechas > muertesRecibidas) {
                            ventajasStyleClass = "table_cell_positive";
                        } else if (muertesHechas < muertesRecibidas) {
                            ventajasStyleClass = "table_cell_negative";
                        }
                    }
            %>
            <tr>
                <td style="text-align:center; border: 1px solid;">
                    <a href="<%=URLHelper.getURL(otroJugador)%>">
                        <img style="width: 64px; height: 64px;" alt="<%=otroJugador.getDatos().getNombre()%>" src="<%=URLHelper.getImageURL(otroJugador)%>" />
                    </a>
                    <br/>
                    <%=otroJugador.getDatos().getNombre()%>
                </td>
                <td class="table_cell_positive">
                    <%=muertesHechas%>
                </td>
                <td class="table_cell_negative">
                    <%=muertesRecibidas%>
                </td>
                <td class="<%=ventajasStyleClass%>">
                    <%=String.format("%.3g%n", ventaja) + " %"%>
                </td>
                <td class="table_cell" style="width: 500px; height: 100px">
                   <div id="chart_historia_puntos_<%=jugador.getDatos().getNombre()%>_<%=otroJugador.getDatos().getNombre()%>" style="width: 500px; height: 100px" ></div>

                <script type="text/javascript">
                    google.load("visualization", "1", {packages:["corechart"]});
                    google.setOnLoadCallback(drawChart);
                    function drawChart() {
                        var data = google.visualization.arrayToDataTable([
                            ['Juego','Diferencia'],
                    <%=graficos.matrixVersusJugadores(jugador, otroJugador,Buscador.getListaJuegos())%>
                            ]);

                            var options = {
                                title: '',
                                curveType: 'function'
                            };

                            var chart = new google.visualization.LineChart(document.getElementById('chart_historia_puntos_<%=jugador.getDatos().getNombre()%>_<%=otroJugador.getDatos().getNombre()%>'));
                            chart.draw(data, options);
                        }
                </script>
                </td>
                <td class="table_cell">
                    <a href="<%=URLHelper.getVersusURL(jugador, otroJugador)%>">
                        Ver Versus
                    </a>
                </td>
            </tr>
            <% }%>
        </table>
        <br/>
        <br/>

        <% if (jugador.getHistoricoJuegos().size() > 0) {%>
        <span class="mw-headline">Historia</span>
        <br/>
        <script type="text/javascript">
            google.load("visualization", "1", {packages:["corechart"]});
            google.setOnLoadCallback(drawChart);
            function drawChart() {
                var data = google.visualization.arrayToDataTable([
                    ['Juego', 'Puntos por juego','Puntos Acumulado'],
            <%
                List<Juego> historicoJuegos = Buscador.getListaJuegos();
                int acumuladoPuntos = 0;
                int tiempoPartidos = 0;

                for (int i = 0; i < historicoJuegos.size(); i++) {

                    Juego juego = historicoJuegos.get(i);
                    if (!juego.esJugador(jugador)) {
                        continue;
                    }

                    int puntosJuego = juego.getMapaPuntosJugador().get(jugador);

                    acumuladoPuntos += puntosJuego;
                    tiempoPartidos += juego.getTiempoEnSegundos();
            %>
                        ['<%=i + 1%>',  <%=(float) 60 * puntosJuego / historicoJuegos.get(i).getTiempoEnSegundos()%>, <%=(float) 60 * acumuladoPuntos / tiempoPartidos%>],

            <% }%>
                    ]);

                    var options = {
                        title: 'Puntos por Minuto'
                    };

                    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
                    chart.draw(data, options);
                }
        </script>

        <div id="chart_div" class="chart"></div>
        <% }%>
    </body>
</html>
